我們昨天提到了 Terraform 狀態儲存的問題
我們今天就要看 GitLab 可以怎樣幫助我們解決這樣的問題
首先,我們要在 GitLab 上建立一個專案
接著,在那個專案點開 Settings > General
,我們要記下 Project ID
再來,點開這個鏈接以建立一個 Access Token,等一下會需要用到
Access Token 的權限只需要 api
即可
接下來,在我們放 Terraform 程式碼的地方,我們要初始化 Terraform
利用下面的指令,記得把自己專案的資訊替換進去
terraform init \
-backend-config="address=https://gitlab.com/api/v4/projects/<YOUR-PROJECT-ID>/terraform/state/<YOUR-STATE-NAME>" \
-backend-config="lock_address=https://gitlab.com/api/v4/projects/<YOUR-PROJECT-ID>/terraform/state/<YOUR-STATE-NAME>/lock" \
-backend-config="unlock_address=https://gitlab.com/api/v4/projects/<YOUR-PROJECT-ID>/terraform/state/<YOUR-STATE-NAME>/lock" \
-backend-config="username=<YOUR-USERNAME>" \
-backend-config="password=<YOUR-ACCESS-TOKEN>" \
-backend-config="lock_method=POST" \
-backend-config="unlock_method=DELETE" \
-backend-config="retry_wait_min=5"
順利的話應該會看到這樣的訊息
接下來 Terraform 所有的操作,若有狀態變更的話,都會把狀態儲存到 GitLab 上
而別人在編輯這個專案的時候,只要把自己的 Terraform 環境也設定成使用 GitLab backend 的話,就能共用一份 tfstate
記錄,降低困擾
接下來是利用 Ansible 部署 app,明天繼續